package com.cn.sl.server.api.system.user.service

import com.cn.sl.server.api.system.menu.model.dto.MenuDto
import com.cn.sl.server.api.system.user.model.dto.AddAdminUserDto
import com.cn.sl.server.api.system.user.model.dto.AdminUserAppendRoleDto
import com.cn.sl.server.api.system.user.model.dto.AdminUserDto
import com.cn.sl.server.api.system.user.model.dto.AdminUserListQueryDto
import com.cn.sl.server.api.system.user.model.dto.EditAdminUserDto
import com.cn.sl.server.api.system.user.model.dto.UpdateAdminUserStatusDto
import com.cn.sl.server.api.system.user.model.dto.UserPhoneExistDto
import com.cn.sl.server.common.dto.PageDto

interface AdminUserService {
    fun findAll(dto: AdminUserListQueryDto): List<AdminUserDto>

    fun find(dto: AdminUserListQueryDto): PageDto<AdminUserDto>

    fun phoneExists(dto: UserPhoneExistDto): Boolean
    fun findMenu(id: Long): List<MenuDto>
    fun add(dto: AddAdminUserDto)
    fun edit(dto: EditAdminUserDto)
    fun findById(id: Long): AdminUserDto
    fun delete(id: Long)
    fun updateStatus(dto: UpdateAdminUserStatusDto)
    fun appendRole(dto: AdminUserAppendRoleDto)
    fun resetPassword(id: Long)
}